#!/bin/bash

# 默认值
GENERATOR="Unix Makefiles"
BUILD_TYPE="Release"
BUILD_DIR="$(pwd)/build/Unix"

# 参数逻辑处理
if [ $# -gt 0 ]; then
    ARG1="$1"
    ARG2="$2"
    
    case "$ARG1" in
        "mingw")
            GENERATOR="Unix Makefiles"  # 在Ubuntu下MinGW编译通常不需要特殊生成器
            BUILD_DIR="$(pwd)/build/MinGW"
            ;;
        "ninja")
            GENERATOR="Ninja"
            BUILD_DIR="$(pwd)/build/Ninja"
            ;;
    esac
    
    # 处理第二个参数（构建类型）
    if [ -n "$ARG2" ]; then
        BUILD_TYPE="$ARG2"
    fi
fi

echo "Build Tool: $GENERATOR"
echo "Build Type: $BUILD_TYPE"
echo "Build Dir: $BUILD_DIR"

# 判断文件夹是否存在，如果不存在则创建
if [ ! -d "$BUILD_DIR" ]; then
    echo "Create Build Dir: $BUILD_DIR"
    mkdir -p "$BUILD_DIR"
else
    echo "Build Dir Existed: $BUILD_DIR"
fi

cd "$BUILD_DIR" || exit

# 调用 CMake 生成项目
cmake ../.. -G "$GENERATOR" -DCMAKE_BUILD_TYPE="$BUILD_TYPE"

# 构建
cmake --build . --config "$BUILD_TYPE"  -j1
# cmake --build . --config "$BUILD_TYPE"  -j"$JOBS"